/* Events by Fifi209 */

var events = {
	
	redirect: function(url) 
	{
		document.location = url;
	},
	
	init: function() 
	{
		$("#hideBox").addClass('hide');
		$("#messageBox").addClass('hide');
		$("#form_register").addClass('hide');
		this.bind();
	},
	
	bind: function() 
	{
		$("#button_register").click(
			function() 
			{
				events.register_events();
			}
		);
		
		$("#button_login").click(
			function() 
			{
				events.login_events();
			}
		);
		
		$("#form_login").submit(
			function() 
			{
				if ($("#login_name").val() == '' || $('#login_passwd').val() == '') 
				{
					events.login_message('Wypełnij wszystkie pola!');
				}
				else
				{
					events.login();
				}
				return false;
			}
		);

        
        $("#form_register").submit(
			function() 
			{
                var color = events.get_color();
				var colors = new Array("red","yellow","blue");

				if ($('#recaptcha_response_field').val() == '' || $("#register_race").val() == '' || color == '' || !colors.in_array(color) || $("#register_name").val() == '' || $('#register_passwd').val() == '' || $('#register_passwd2').val() == '' || $('#register_mail').val() == '') 
				{
                    events.login_message('Wypełnij wszystkie pola!');
				}
				else if($('#register_passwd').val() != $('#register_passwd2').val())
				{
                    events.login_message('Podane hasła nie są identyczne!');    
                }
				else
				{
					events.register();
				}
				return false;
			}
		);    
         
		$("#messageBox img").click(
			function() 
			{
				$("#messageBox").addClass('hide');
				$("#hideBox").addClass('hide');
			}
		);
		
    },

	
	login_message: function(msg) 
	{
		$("#message").html(msg);
		$("#hideBox").removeClass('hide');
		$("#messageBox").removeClass('hide');
		events.clear_login_form();
	},
	
	login: function() 
	{
		var user = $("#login_name").val();
		var passwd = $("#login_passwd").val();
		
		$.ajax(
		{
			url: "/auth/login/",
			type: "POST",
			dataType: "JSON",
			data: {user: user, passwd: passwd},
			success: function(data)
			{
				if (data.response == 1) 
				{
					events.login_message('Zostałeś zalogowany. Przekierowanie za 2 sekundy.');
					$("#form_login input[type=submit]").attr('disabled', 'disabled');
					setTimeout(
						function() 
						{
							events.redirect('/');
						},
						2000
					);
				}
				else
				{
					events.login_message('Niepoprawny login lub hasło.');
				}
			}
		});
	},
        
        register: function() 
		{
			var user = $("#register_name").val();
			var passwd = $("#register_passwd").val();
			var passwd2 = $("#register_passwd2").val();
			var mail = $("#register_mail").val();
			var race = $("#register_race").val();
			var captcha = $("#recaptcha_response_field").val();
			var captcha_challenge = $("#recaptcha_challenge_field").val();

			$.ajax(
			{
				url: "/index.php/auth/register/",
				type: "POST",
				dataType: "JSON",
				data: {name: user, passwd: passwd, passwd2: passwd2, email: mail, race_id: race, color: events.get_color(), recaptcha_response_field: captcha, recaptcha_challenge_field: captcha_challenge},
				success: function(data) 				
				{
					if (data.status == 1) 
					{
						events.login_message('Zostałeś zarejestrowany. Przekierowanie za 2 sekundy.');
						$("#form_login input[type=submit]").attr('disabled', 'disabled');
						setTimeout(
							function() 
							{
								events.redirect('/');
							},
							2000
						);
					}
					else
					{
						Recaptcha.reload();
						events.login_message(data.message);
					}
				}
			});
	},
	
	register_events: function() 
	{
		$("#form_login").addClass('hide');
		$("#form_register").removeClass('hide');
		$("#button_register").addClass('hide');
		$("#button_login").removeClass('hide');
	},
	
	login_events: function() 
	{
		$("#form_login").removeClass('hide');
		$("#form_register").addClass('hide');
		$("#button_register").removeClass('hide');
		$("#button_login").addClass('hide');
	},

	clear_login_form: function() 
	{
		$("#login_name").val('');
		$("#login_passwd").val('');
	},
	
	/* Sprawdzanie koloru */
	get_color: function() 
	{
		return $("input[name=kolor]:radio:checked").val();
	}
	
}

Array.prototype.in_array = function(val) 
{
    for (v in this) 
    {
        if (this[v] == val) 
        {
            return true;
        }
    }
    return false;
}

$(document).ready(
	function() {
		events.init();
	}
);